Fibre Channel is a well known standard for storage networks. It is generally used for applications where high data transmission rates and high reliability are necessary. Ethernet is a network communication standard traditionally used for applications for which the data transmission rate and reliability requirements are not as high as they are for Fibre Channel applications. For example, Ethernet is often used as a base layer for TCP/IP networks, which are in turn used for Internet networking. However, recent developments have brought about Ethernet technology featuring data transmission rates and reliability similar to those of Fibre Channel. An example is the converged enhanced Ethernet (CEE) currently being developed at the IEEE standards body.
Since Ethernet is very prevalent, there have been suggestions to move applications that traditionally rely on Fibre Channel (such as, for example, storage networking) to CEE or other types of Ethernet networks. This would save resources as it would remove the necessity of building and supporting two separate networks in an organization (i.e., a Fibre Channel network for storage and an Ethernet network for Internet access, computer to computer communications, etc).
Consequently, Fibre Channel over Ethernet (FCoE) is proposed as a way of mapping Fibre Channel frames over selected Ethernet networks. A description of the FCoE protocol can be found in an ANSI/INCITS T11 committee document 07-303v0 dated May 2007. Essentially, FCoE maps Fibre Channel natively over Ethernet while being independent of the Ethernet forwarding scheme. The FCoE protocol specification replaces the FC0 and FC1 layers of the Fibre Channel stack with Ethernet. By retaining the native Fibre Channel constructs, FCoE allows a seamless integration with existing Fibre Channel networks and management software. Computers using FCoE typically use a Converged Network Adapter (CNA), which is both a Fibre Channel Host Bus Adapter (HBA) and an Ethernet Network Interface Card (NIC) to the server, but appears as a single Ethernet NIC to the network. CNAs provide an evolutionary approach to consolidation of a server's I/O over a single network (Ethernet) reducing network complexity in the Data Center.
Nevertheless, existing NICs, when used as FCoE CNAs, may not be optimized to offer the best performance and efficiency for their host devices. Particularly because the typical FCoE traffic, such as data transfer in a storage network, tends to have multi-frame sequences as part of an input/output (I/O) operation, there may be potential performance degradation due to individualized processing of frames in the sequences and the excessive number of interrupts and data copies during the operation. Data placement may be another issue with the existing NIC cards when used for FCoE traffic. In particular, the consumers of SCSI services such as file systems and other user applications may provide data buffers that are used for I/O data transfer. But when incoming frames arrive from the network, they are first stored in a list of empty buffers of the standard NIC driver interface where a decapsulation process has to be performed on each of the frames. Then, the decapsulated frames have to be copied from the buffers of the standard NIC to the I/O buffers of the SCSI devices. The decapsulation and copying steps may also negatively affect the performance of the central processing unit (CPU). One of the currently available solutions involves implementing a complete I/O offload in the Fibre Channel HBAs that are available today. However, it is very difficult and costly to include, in the currently available Fibre Channel HBAs, complex, state-full logic to understand FCP, FC2 protocols and perform complete I/O management functions including error condition handling and recovery. Therefore, a more efficient and less complex solution for handling Fibre Channel traffic is desired.